/*
 * @Author: c
 * @Date: 2024-02-07 05:30:18
 * @LastEditTime: 2024-02-07 11:25:02
 * @LastEditors: c
 * @Description: 
 * @FilePath: \music-web-backend\src\core\music\song\interface\song.interface.ts
 * https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import { FavoriteForm } from "../dto/create-song.dto";
import { SongPageQuery } from "../dto/search-song.dto";
import { Song } from "../entities/song.entity";

export interface ISong {
    page(username: string, pageQury: SongPageQuery): Promise<[Song[], number]>
    myfavorite(userId: number, page: SongPageQuery): Promise<[Song[], number]>
    createFavorite(userId: number, song: FavoriteForm): Promise<void>
    deleteFavorite(userId: number, song: FavoriteForm): Promise<void>
    listBynameOrId(songName: string, artistIds?: number[]): Promise<Song[]>
    getGenresByids(ids: number[]): Promise<number[]>
    getOne(id: number): Promise<Song>
    getArtistSongList(username: string, param: SongPageQuery): Promise<[Song[], number]>
}